package com.kang.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.kang.pojo.SupplyAgreementItem;
import com.vonechina.entity.page.AggrementItemPage;

/**
 * 供货协议物品信息持久层
 * 
 * @author zs614
 *
 */
public interface SupplyAgreementItemMapper {
	/**
	 * 查询供货协议物品信息
	 * 
	 * @param supplyagreementid
	 *            供货协议ID
	 * @return
	 */
	public List<SupplyAgreementItem> s_iteminfo(Integer supplyagreementid);

	/**
	 * 删除供货协议物品信息
	 * 
	 * @param id
	 *            供货协议物品信息ID
	 * @return
	 */
	public int deleteByPrimaryKey(Integer id);

	/**
	 * 新增供货协议物品信息
	 * 
	 * @param record
	 *            供货协议物品信息实体类
	 * @return
	 */
	public int insert(SupplyAgreementItem record);

	/**
	 * 新增供货协议物品信息
	 * 
	 * @param record
	 *            供货协议物品信息实体类
	 * @return
	 */
	public int insertSelective(SupplyAgreementItem record);

	/**
	 * 通过ID查询供货协议物品信息
	 * 
	 * @param id
	 * @return
	 */
	public SupplyAgreementItem selectByPrimaryKey(Integer id);

	/**
	 * 更新供货协议物品信息
	 * 
	 * @param record
	 *            供货协议物品信息实体类
	 * @return
	 */
	public int updateByPrimaryKeySelective(SupplyAgreementItem record);

	/**
	 * 更新供货协议物品信息
	 * 
	 * @param record
	 *            供货协议物品信息实体类
	 * 
	 * @return
	 */
	public int updateByPrimaryKey(SupplyAgreementItem record);

	/**
	 * 搜索可用物品信息
	 * 
	 * @param itemPage
	 *            搜索条件实体类
	 * @return
	 */
	public List<SupplyAgreementItem> listNotAddItem(AggrementItemPage itemPage);

	/**
	 * 查询可用物品信息数量
	 * 
	 * @param itemPage
	 *            搜索条件实体类
	 * @return
	 */
	public Integer countNotAddItem(AggrementItemPage itemPage);

	/**
	 * 删除供货协议下不来物品来源中的物品信息
	 * 
	 * @param supplyagreementid
	 *            供货协议ID
	 * @param itemIds
	 *            物品来源ID
	 * @return
	 */
	public int deleteAgreementItem(@Param("supplyagreementid") int supplyagreementid,
			@Param("itemIds") Integer[] itemIds);

	/**
	 * 更新供货协议物品信息
	 * 
	 * @param record
	 *            供货协议物品信息实体类
	 * @return
	 */
	public int updateAgreementItem(SupplyAgreementItem record);

	/**
	 * 通过供货协议与物品来源搜索物品信息
	 * 
	 * @param supplyAgreementID
	 *            供货协议ID
	 * @param itemIds
	 *            物品来源ID
	 * @return
	 */
	public SupplyAgreementItem selectAgreementItem(@Param("supplyAgreementID") int supplyAgreementID,
			@Param("itemId") Integer itemIds);

	/**
	 * 根据供应商ID与物品ID查询物品信息
	 * 
	 * @param supplierID
	 *            供应商ID
	 * @param itemId
	 *            物品ID
	 * @return
	 */
	public SupplyAgreementItem selectItemBySupplier(@Param("supplierID") int supplierID,
			@Param("itemId") Integer itemId);
}